BNF for DateTimeParser.jj

NON-TERMINALS

parseLine ::= date_time ( "\r" )? "\n"
parseAll ::= date_time <EOF>
date_time ::= ( day_of_week "," )? date time
day_of_week ::= ( "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat" | "Sun" )
date ::= day month year
day ::= <DIGITS>
month ::= "Jan"
| "Feb"
| "Mar"
| "Apr"
| "May"
| "Jun"
| "Jul"
| "Aug"
| "Sep"
| "Oct"
| "Nov"
| "Dec"
year ::= <DIGITS>
time ::= hour ":" minute ( ":" second )? zone
hour ::= <DIGITS>
minute ::= <DIGITS>
second ::= <DIGITS>
zone ::= ( <OFFSETDIR: ["+","-"]> <DIGITS> | obs_zone )
obs_zone ::= ( "UT" | "GMT" | "EST" | "EDT" | "CST" | "CDT" | "MST" | "MDT" | "PST" | "PDT" | <MILITARY_ZONE: ["A"-"I","a"-"i","K"-"Z","k"-"z"]> )